home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 426-450 / disk_447 / tcl / readme < prev    next >
Text File  |  1992-05-06  |  9KB  |  186 lines

  1. Hackercorp - Hackercorp - Hackercorp - Hackercorp - Hackercorp - Hackercorp
  2.  
  3.  
  4. TCLREADME    3/15/90
  5. ---------    -------
  6.  
  7.     This document is Copyright 1990 by Hackercorp.  Permission to use,
  8.     copy,  modify, and distribute this documentation for any purpose 
  9.     and  without fee is hereby granted, provided that the above copyright
  10.     notice appear in all copies.  Hackercorp makes no representations 
  11.     about the suitability of this software for any purpose.  It is 
  12.     provided "as is" without express or implied warranty.
  13.  
  14.  
  15. This is the alpha-2 distribution of Tcl and Tcla.  Tcl stands for Tool
  16. Command Language, and was created by Dr. John Ousterhout of the
  17. University of California at Berkeley as a library package to be
  18. embedded in various tools (editors, debuggers, terminal emulators, etc)
  19. as the tool's command interpreter.  Tcl provides a simple programming
  20. language, a set of built-in commands, and has a C interface that 
  21. tools can use to add application-specific commands to the base set
  22. provided by Tcl.
  23.  
  24. Tcla stands for Tool Command Language - Amiga, and it provides several 
  25. commands (via the C interface) that have been added to Tcl to support 
  26. Amigas, including support for CLI commands, windows, menus, resources,
  27. file requesters, alerts and message passing between Tcla programs.  
  28. Tcla was created by Karl Lehenbauer of Hackercorp.
  29.  
  30. This package contains both Tcl and Tcla, packaged as an Amiga shared
  31. library, tcla.library.  Tcl in tcla.library is essentially original Tcl,
  32. with a small number of changes described below.  Tcl is copyrighted by
  33. the University of California, but their copyright allows for reuse for any
  34. purpose, including commercial sale, subject to the restriction that the 
  35. copyright and disclaimer messages must be included unmodified where present 
  36. (i.e.  in the source code).  Likewise, Tcla is copyrighted by Hackercorp, 
  37. but we also allow redistribution for any purpose subject to the same
  38. requirements regarding copyright and disclaimer messages.
  39.  
  40. Tcl and Tcla have been compiled into an Amiga shared library, named
  41. tcla.library.  The 'tcl' program, included with this Tcla release, can 
  42. open tcla.library and make use of it to create Tcl interpreters and get 
  43. them to evaluate Tcl commands, and to use the Tcla functions to interface 
  44. with the supported Amiga interface routines, other Tcla programs, and C 
  45. subroutines  that you may decide to write and make callable from Tcl.
  46.  
  47. tcla.library, in addition to providing the basic capabilities of Tcl, has
  48. additional support for many Amiga-specific functions, such as executing
  49. CLI commands and getting the result back as a string,  opening and 
  50. manipulating windows and processing window events, file requesters, alerts,
  51. support for menus (where menu entries you define from Tcl cause Tcl code
  52. to be executed when selected), define and interact with gadgets, and provides
  53. sharable Tcl-based handles to various application-specific data entities
  54. (resource banks).  Further, all Tcla programs have the ability to send and 
  55. receive  Tcl commands to and from other Tcla programs.
  56.  
  57. The tcl demo program, the one that calls tcla.library, should compile 
  58. without trouble on Manx Aztec C 5.0a or later.  A port of the demo program
  59. to Lattice should be dead easy -- the program is only a couple dozen lines 
  60. long.
  61.  
  62. The tcla.library was generated with Aztec C 5.0a, but should be callable
  63. by any programming language that can make use of .fd files.  For programmers
  64. using Aztec C, include files with ANSI function prototypes and pragmas
  65. are included.  They may need some massaging for use under Lattice.
  66.  
  67. Changes in Tcl from Tcl as provided by John Ousterhout/Berkeley:
  68.  
  69.     o In original Tcl assigning an empty string to a variable caused
  70.       that variable to cease to exist, resulting in an error when you
  71.       tried to reference it.  This broke all sorts of little Tcl 
  72.       programs that should have worked.
  73.  
  74.       Peter da Silva came up with changes to fix this, and Amiga Tcl 
  75.       incorporates this change.  The changes been forwarded to John 
  76.       Ousterhout (they were minor) and he has agreed to adopt them.
  77.  
  78.     o As a positive side effect of the above change, Tcl procedures that
  79.       can accept a variable number of arguments can now be called with
  80.       no arguments.  Previously if you defined a Tcl procedure as taking
  81.       a variable number of arguments, it required that at least one 
  82.       argument be passed.  This restriction was not true for C extensions, 
  83.       so now neither C extensions nor high-level Tcl procedures require an 
  84.       argument when the procedure expects a variable number of arguments.
  85.  
  86.     o ANSI function prototypes have been generated and are used to
  87.       enable type-checking when compiling Tcl and Tcla.  The tcl.h
  88.       and tcla.h include files declare function prototypes for all
  89.       C-callable Tcl and Tcla support routines to help insure
  90.       their correct usage.
  91.  
  92.     o Original Tcl did not concern itself with running out of memory.
  93.       This is understandable as it was developed and used on a virtual
  94.       memory machine (VAX) running Unix.  On the Amiga we have to be
  95.       more careful, because running out of memory is not such an uncommon
  96.       occurrence.  A mechanism is provided for Tcl to call a programmer-
  97.       specified routine if it is unable to allocate memory, so memory can
  98.       be freed if possible.
  99.  
  100.     o The panic routine that comes with Berkeley Tcl is not included
  101.       in the Tcl library.  It has been replaced by an Amiga-specific
  102.       routine that pops up a requester describing the problem, then
  103.       does other Amiga-specific things.  Programmers using the C 
  104.       interface can provide  their  own panic routine (both Tcl and 
  105.       Tcla library routines call panic when they encounter various 
  106.       unrecoverable conditions) or  use the one that is included in 
  107.       the Tcla library (the default).
  108.  
  109. The Tcl documentation consists of the Tcl manual and the Tcl C-interface
  110. routine docs.  These files are available in the Unix nroff format, but
  111. for this release they have already been nroffed and run through col and
  112. strike to produce a straight ASCII-printable document.  This file is
  113. tcl.man in the release.
  114.  
  115. Tcla documentation is provided in the form of several .doc files.  These
  116. are straight ASCII files at this time, although they will eventually
  117. probably be put into the nroff "man" format.
  118.  
  119. Running The Demos
  120. -----------------
  121.  
  122. To run the demos, you need to put the tcl procedures (.tcl files) in
  123. a directory that has had an "assign tclprocs:" done on it.  Then,
  124. cd to that directory, and do a "tcl -f hello.tcl" or a "tcl" followed
  125. by "source hello.tcl", "source demo.tcl", etc.  To execute from the
  126. Tcl command prompt, enter a control-\, which is the Amiga end-of-file.
  127.  
  128. The demos assume that you have a program, more, which takes a filename
  129. and displays the contents of the file, and a command, lc, which lists
  130. the files in a directory.  I hope to acquire PD versions of these
  131. programs and include them in future releases.  Also, demo.tcl requires
  132. ruby.font in the 15 pixel height.
  133.  
  134. Indidentally, hello.tcl can use an alternate font that's specified on
  135. the command line.  For example,
  136.     tcl -f hello.tcl ruby.font 15
  137. will cause hello world to be displayed using the 15-pixel-high ruby font.
  138. If you resize the window, "Hello, World." will be redisplayed within the
  139. window drawing area.
  140.  
  141.  
  142. Known Bugs In Alpha-2 Release
  143. -----------------------------
  144.  
  145. There is a file, bugs, within the release that details known bugs.
  146.  
  147.  
  148. Miscellaneous Ruminations
  149. -------------------------
  150.  
  151. The library will probably grow on the whole, rather than shrink, as new
  152. capabilities are added.  However, with the planned support for  attaching
  153. additional specially-prepared shared libraries from within tcl to install 
  154. a set of commands into your Tcl interpreter, the tcl library will probably
  155. shrink and a second library will be created to support all of the Intuition
  156. functions.
  157.  
  158. Manx 5.0a optimizer really shrinks the code.  The library size shrinks
  159. by 16K bytes when compiled with optimization.
  160.  
  161. A bunch of the file requester code will eventually go away.
  162.  
  163.  
  164. Reporting Bug Fixes And Distributing Changes
  165. --------------------------------------------
  166.  
  167. PLEASE DO NOT GENERALLY DISTRIBUTE CODE OR PACKAGES BASED ON ANY ALPHA 
  168. OR BETA RELEASE OF TCLA.  WE DO NOT WANT TO HAVE TO MAINTAIN BACKWARD 
  169. COMPATIBILITY TO THE MANY BRAIN-DAMAGED ASPECTS OF ALPHA AND/OR BETA 
  170. RELEASES.
  171.  
  172. Please report bug fixes back to Hackercorp so that we may include them in
  173. future releases.
  174.  
  175.  
  176. Regards,
  177.  
  178. Karl Lehenbauer @ The Hacker's Haven -- Hackercorp  "We Are Enthusiasts."
  179. 3918 Panorama
  180. Missouri City, TX  77459
  181.  
  182. Internet/BITNET: karl@sugar.hackercorp.com
  183. Usenet: uunet!sugar!karl
  184.  
  185.  
  186.